<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class _productoM extends CI_Model {

    public function __construct() {
        $this->load->database();
    }

    // I N S E R T    
    public function insert($establecimiento, $categoria, $data) {
        //verificamos que el producto pertenezca al establecimiento
        $query = "SELECT COUNT(*) as N FROM (SELECT * FROM establecimiento WHERE id_establecimiento='$establecimiento') e, (SELECT * FROM categoria_producto_servicio WHERE id_categoria_producto='$categoria') c WHERE e.id_establecimiento = c.id_establecimiento";
        $count = $this->db->query($query)->result();
        // var_dump($count);
        if ($count[0]->N == 1) {  // el producto si pertenece a tal establecimiento
            $query = "INSERT INTO producto_servicio(id_categoria_producto,nombre,descripcion,valor,cantidad_actual) VALUES('$categoria','{$data['nombre']}','{$data['descripcion']}','{$data['valor']}','{$data['cantidad_actual']}')";
            $this->db->query($query);
        }
    }

    // S E L E C T
    public function get($id) {
        $query = "SELECT * FROM producto_servicio WHERE id_servicio='$id'";
        return $this->db->query($query)->result();
    }

    public function getAll($establecimiento, $categoria) {
        $query = "SELECT * FROM categoria_producto_servicio cp, producto_servicio ps WHERE cp.id_categoria_producto = ps.id_categoria_producto AND ps.id_categoria_producto='$categoria' AND cp.id_establecimiento='$establecimiento' AND ps.eliminado=0";
        // echo $query; 
        return $this->db->query($query)->result();
    }
    public function getAllProductos($establecimiento, $categoria) {
        $query = "SELECT * FROM categoria_producto_servicio cp, producto_servicio ps WHERE cp.id_categoria_producto = ps.id_categoria_producto AND ps.id_categoria_producto='$categoria' AND cp.id_establecimiento='$establecimiento' AND ps.eliminado=0";
        // echo $query; 
        return $this->db->query($query)->result();
    }
    //Obtiene los productos con inventario>0
     public function getAllProductosConInventarios($establecimiento, $categoria) {
        $query = "SELECT * FROM categoria_producto_servicio cp, producto_servicio ps WHERE cp.id_categoria_producto = ps.id_categoria_producto AND ps.id_categoria_producto='$categoria' AND cp.id_establecimiento='$establecimiento' AND ps.cantidad_actual > 0 AND ps.eliminado=0";
        // echo $query; 
        return $this->db->query($query)->result();
    }


    // U P D A T E 
    public function update($establecimiento, $categoria, $data) {
        //verificamos que la categoria si pertenezca a ese establecimiento
        $query = "SELECT COUNT(*) as N FROM (SELECT * FROM establecimiento WHERE id_establecimiento='$establecimiento') e, (SELECT * FROM categoria_producto_servicio WHERE id_categoria_producto='$categoria') c WHERE e.id_establecimiento = c.id_establecimiento";
        $count = $this->db->query($query)->result();
        // var_dump($count);
        if ($count[0]->N == 1) {  // el producto si pertenece a tal establecimiento
            $query = "UPDATE producto_servicio SET nombre='{$data['nombre']}',descripcion='{$data['descripcion']}',valor='{$data['valor']}' WHERE id_servicio='{$data['id_servicio']}'";
            $this->db->query($query);
        }
    }

    public function update2cantidadActual($establecimiento, $categoria, $data) {
         //verificamos que la categoria si pertenezca a ese establecimiento
        $query = "SELECT COUNT(*) as N FROM (SELECT * FROM establecimiento WHERE id_establecimiento='$establecimiento') e, (SELECT * FROM categoria_producto_servicio WHERE id_categoria_producto='$categoria') c WHERE e.id_establecimiento = c.id_establecimiento";
        $count = $this->db->query($query)->result();
        // var_dump($count);
        if ($count[0]->N == 1) {  // el producto si pertenece a tal establecimiento
            $query = "UPDATE producto_servicio SET cantidad_actual='{$data['cantidad_nueva']}' WHERE id_servicio='{$data['id_servicio']}'";
            $this->db->query($query);
        }
    }

    // D E L E T E
    public function delete($establecimiento, $categoria, $data) {
        //verificamos que la categoria si pertenezca a ese establecimiento
        $query = "SELECT COUNT(*) as N FROM (SELECT * FROM establecimiento WHERE id_establecimiento='$establecimiento') e, (SELECT * FROM categoria_producto_servicio WHERE id_categoria_producto='$categoria') c WHERE e.id_establecimiento = c.id_establecimiento";
        $count = $this->db->query($query)->result();
        if ($count[0]->N == 1) {  // el producto si pertenece a tal establecimiento
            $query = "UPDATE producto_servicio SET eliminado=1 WHERE id_servicio='{$data['id_servicio']}'";
            $this->db->query($query);
        }
    }

}